An application refers to a software program, which upon execution performs specific desired tasks. In general, several applications are executed in a run-time environment containing one or more of operating systems, virtual machines (e.g., supporting Java™ programming language), device drivers, etc., as is well known in the relevant arts.
The continuous delivery (CD) of software using products such as Hudson/Jenkins or TeamCity relies on the basic process of stringing together a series of individual jobs or tasks into some sort of pipeline where they are orchestrated to take the software product from source code, through compilation and testing into deployment, promotion, approvals and delivery. In common with many other similar process orchestrations (think SOA) the continuous delivery server has to manage each instance of the process pipelines that are running, receiving the results from one task before making a decision about what to do next. Conventional solutions to this used by products such as Hudson revolve around having a assigned process that is managing the pipeline instance for its lifetime.
Accordingly, what is desired is to solve problems relating to managing highly scalable continuous delivery pipelines for applications developed, for example, using a cloud-based service or hybrid cloud/enterprise system, some of which may be discussed herein. Additionally, what is desired is to reduce drawbacks relating to managing pipelines, some of which may be discussed herein.